package com.gy.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.sql.Date;
import java.sql.Timestamp;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("sys_user")
@ApiModel("用户")
public class User implements Serializable {
    @ApiModelProperty("用户ID")
    @TableField("user_id")
    private Long userId;

    @ApiModelProperty("部门ID")
    @TableField("dept_id")
    private Long deptId;

    @ApiModelProperty("用户账号")
    @TableField("user_name")
    private String userName;

    @ApiModelProperty("用户昵称")
    @TableField("nick_name")
    private String nickName;

    @ApiModelProperty("用户类型")
    @TableField("user_type")
    private String userType;

    @ApiModelProperty("电子邮件地址")
    @TableField("email")
    private String email;

    @ApiModelProperty("手机号码")
    @TableField("phonenumber")
    private String phoneNumber;

    @ApiModelProperty("用户性别")
    @TableField("sex")
    private String sex;

    @ApiModelProperty("头像地址")
    @TableField("avatar")
    private String avatar;

    @ApiModelProperty("密码")
    @TableField("password")
    private String password;

    @ApiModelProperty("帐号状态")
    @TableField("status")
    private String status;

    @ApiModelProperty("删除标志")
    @TableField("del_flag")
    private String delFlag;

    @ApiModelProperty("最后登录IP")
    @TableField("login_ip")
    private String loginIp;

    @ApiModelProperty("最后登录时间")
    @TableField("login_date")
    private Timestamp lastLoginAt;

    @ApiModelProperty("论文总数")
    @TableField("paper_count")
    private Integer paperCount;

    @ApiModelProperty("专利总数")
    @TableField("patent_count")
    private Integer patentCount;

    @ApiModelProperty("软件著作权总数")
    @TableField("copyright_count")
    private Integer copyrightCount;

    @ApiModelProperty("个人获奖总数")
    @TableField("awardPersonal_count")
    private Integer awardPersonalCount;

    @ApiModelProperty("学生获奖总数")
    @TableField("awardStudent_count")
    private Integer awardStudentCount;

    @ApiModelProperty("继续教育材料总数")
    @TableField("material_count")
    private Integer materialCount;

    @ApiModelProperty("著作信息总数")
    @TableField("publication_count")
    private Integer publicationCount;

    @ApiModelProperty("新闻报道上传总数")
    @TableField("report_count")
    private Integer reportCount;

    @ApiModelProperty("档案资料总数")
    @TableField("certificateinfo_count")
    private Integer certificateinfoCount;

    @ApiModelProperty("其它资料总数")
    @TableField("other_count")
    private Integer otherCount;

    @ApiModelProperty("纵向课题数量")
    @TableField("longitudinal_project_count")
    private Integer longitudinalProjectCount;
    
    @ApiModelProperty("横向课题数量")
    @TableField("horizontal_project_count")
    private Integer horizontalProjectCount;

    @ApiModelProperty("年龄")
    @TableField("age")
    private Integer age;

    @ApiModelProperty("职称")
    @TableField("title")
    private String title;

    @ApiModelProperty("最高学位")
    @TableField("highest_degree")
    private String highestDegree;

    @ApiModelProperty("系部")
    @TableField("department")
    private String department;

    @ApiModelProperty("加入学院时间")
    @TableField("join_college_date")
    private Date joinCollegeDate;

    @ApiModelProperty("创建者")
    @TableField("create_by")
    private String createBy;

    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private Timestamp createdAt;

    @ApiModelProperty("更新者")
    @TableField("update_by")
    private String updateBy;

    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private Timestamp updateTime;

    @ApiModelProperty("备注")
    @TableField("remark")
    private String remark;


}
